import pandas as pd

MAX_REQ_PER_QUERY = 100  # Не больше 100 запросов на одну задачу
SLEEP_TIME = .2  # Сон между запросами. Чтобы не ддосить апи

DEFAULT_GET_PARAMS = {
    "iss.meta": "off"
}

ENDPOINT_DEFAULTS = {
    "873": {"limit": 500},
    "791": {"numtrades": 1},
    "147": {"limit": 100},
}

PARAMS_ALLOWED_MANY = {"securities", "boardid", "assets", "sectypes"}

SECTYPE = {
    "1": "Акция обыкновенная",
    "2": "Акция привилегированная",
    "3": "Государственные облигации",
    "4": "Региональные облигации",
    "5": "Облигации центральных банков",
    "6": "Корпоративные облигации",
    "7": "Облигации МФО",
    "8": "Биржевые облигации",
    "9": "Паи открытых ПИФов",
    "A": "Паи интервальных ПИФов",
    "B": "Паи закрытых ПИФов",
    "C": "Муниципальные облигации",
    "D": "Депозитарные расписки",
    "E": "Бумаги иностранных инвестиционных фондов (ETF)",
    "F": "Ипотечный сертификат",
    "G": "Корзина бумаг",
    "H": "Доп. идентификатор списка",
    "I": "ETC (товарные инструменты)",
    "J": "Пай биржевого ПИФа (Exchange Investment Unit share)"
}

OPTION_SERIES_TYPE = {
    "D": "дневной",
    "W": "недельный",
    "M": "месячный",
    "Q": "квартальный",
}

DICTIONARY_API_URL = "https://iss.moex.com/iss/index.json"
INDEX_ID_API_URL = "https://iss.moex.com/iss/statistics/engines/stock/markets/index/analytics.json"

DATATYPES = ["securities", "trades"]

REPORT_NAMES = pd.DataFrame(
    data=[
        [
            "numtrades",
            "Информация о количестве договоров по инструментам, "
            "являющимся производными финансовыми инструментами (по валютным парам)",
        ],
        [
            "participants",
            "Информация о количестве лиц, имеющих открытые позиции по инструментам, "
            "являющимся производными финансовыми инструментами (по валютным парам)",
        ],
        [
            "openpositions",
            "Информация об открытых позициях по инструментам, являющимся производными "
            "финансовыми инструментами (по валютным парам)",
        ],
        [
            "expirationparticipants",
            "Информация о количестве лиц, имеющих открытые позиции по договорам, "
            "являющимся производными финансовыми инструментами (по срокам экспирации)",
        ],
        [
            "expirationopenpositions",
            "Информация об объеме открытых позиций по договорам, являющимся производными "
            "финансовыми инструментами (по срокам экспирации)",
        ],
    ],
    columns=["report_name", "description"],
).set_index("report_name")

SESSIONS = pd.DataFrame(
    data=[
        [1, "Основная сессия"],
        [2, "Вечерняя сессия"],
        [3, "Итого (все сессии)"],
        [0, "Утренняя сессия"],
    ],
    columns=["sessions", "description"],
).set_index("sessions")
